#include "../bulk_storage/bulk_storage.h"
#include "../pdb_index/atom.h"
//#include "../pdb_index/xyz.h"
#include "../metric/xyz.h"
#include "../pdb_index/atom_weight.h"
#include <string.h>

/**
   \defgroup AAUtil AA Utilities
   \ingroup AA
*/

/**
   \ingroup AAUtil
*/
off_t find_in_aa_by_name(const struct store * atomStore, const off_t start_position, const char * name);

/**
   \ingroup AAUtil
*/
void * filter_atom_by_name(struct atom* a, char atomName[4]);
/**
   \ingroup AAUtil
*/
void * filter_atom_by_residue_number(struct atom* a, int residueNumber);


/**
   \ingroup AAUtil
*/
void find_aa_range(const struct store * atomStore, const off_t i, off_t * start, off_t * stop);

/**
   \ingroup AAUtil
*/
int calculate_aa_functional_group(const struct store * atomStore, const off_t start, const off_t stop, struct xyz_int * out);

/**
   \ingroup AAUtil
*/
void calculate_aa_mass_center(const struct store * atomStore,const off_t start, const off_t stop, struct xyz_int * output);

/**
   \ingroup AAUtil
*/
int can_calculate_aa_mass_center(const struct store * atomStore, const off_t start, const off_t stop);
